//
//  proto.h
//  P2PClient
//
//  Created by wilson_chen on 2009/12/29.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//
#ifndef _PROTO_H_
#define _PROTO_H_

#define MAX_PACKET_SIZE 65535

//1.控制傳輸
#define MSGTYPE_REG   0x01 //設備發往P2P伺服器的註冊包
#define MSGTYPE_HPREQ 0x02 //客戶端請求伺服器命令設備發出UDP打洞包(Hole Punching)
#define MSGTYPE_HPCMD 0x03 //伺服器命令設備發出打洞包
#define MSGTYPE_HPPKT 0x04 //設備發出的UDP打洞包(Hole Punching)
#define MSGTYPE_HPFAI 0x05 //伺服器收到客戶端的請求設備打洞命令包後回複客戶端:設備不線上
#define MSGTYPE_HPSUC 0x06 //伺服器收到客戶端的打洞請求包後回複客戶端:設備線上
#define MSGTYPE_REGRS 0x07 //伺服器回複設備的註冊結果.成功:Update-OK 失敗:?

struct PKT_Header {
	unsigned char  verId;//=P2P_VERID
	unsigned char  nid; //msgType: 0-0X63 粗體部分與設備有關.0X64-0XFF未使用,可自由定義
	unsigned short  data_length;//getReq[]或httpData[]的長度
	unsigned long  seqno;//發送方數據序列號
	unsigned long  ackno;//確認序列號
};

typedef struct PKT_Header PKTHeader;

typedef struct stLoginMessage
{
	char username[20];
	char password[20];
}LoginMessage_t;

struct timevalue {
	long tv_sec;
	long tv_usec;
};

#define P2P_VERID 0XA0
#define P2P_HEADER_LEN sizeof(PKTHeader)

#endif

//@implementation proto

//@end
